package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐使用：只创建1次】
 * Lambda表达式---JavaJDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表达式/函数式表遍历！功能：简化匿名内部类
 *                                           简化集合遍历功能
 *                                           简化功能方法
 *                                           简化IO流功能
 * Lambda表达式语法：()->{}，属于功能性接口!
 * ()   代表
 * ->   代表
 * {}   代表
 * 需求：创建一个接口Insert 插排  提供：电
 *         子实现类Computer 电脑
 *       子类实现接口 ---完成对象创建【创建1次】
 *       匿名内部类方式完成对象创建
 *       Lambda表达式结构完成对象创建
 */
public class LambdaAPI {

    public static void main(String[] args) {
        //创建插排接口--必须用子实现类
//        Insert cp=new Computer();
//        cp.Dian();
        //子实现类---创建一次对象---匿名内部类：支持接口以及抽象类创建
     /*   Insert cp=new Insert() {

            public String  Dian(long money,char ch) {
               return "电脑通电了";

            }
        };
        cp.Dian(100,'2');*/

        //使用Lambda表达式       Insert cp=()->
        Insert cp=(money,ch)->{return "电脑通电了";};
        cp.Dian(100,'5');
/**Lambda表达式【简化方法】---匿名内部类【简化1个子类】【接口创建】
 * () 代表 方法中参数  情况①：无参数，不可以删除
 *                      ②：有参数，有1个参数,括号删除
 *                      ③：有参数：有2个参数以上，不可以删除
 *  ->代表new对象的过程
 *  {}代表  方法中内容，情况：
 *         ①看方法返回值 void 空 传入输出语句，删除花括号
 *         ②看方法返回值  Java数据类型  return
 *               【两种：八大基本数据类型|引用类型】
 *                返回值 存在 return 不可以删除【推荐】
 *         2.1    返回值 不存在 return 可以删除【不推荐】
 *     ②：看方法返回值   返回值集合  不可以删除花括号
 */
    }
}
//创建插排---接口
interface Insert{
    public String Dian (long money,char ch);
}
//创建插排实现类---电脑类
//class Computer implements Insert{
//    public void Dian() {
//        System.out.println("电脑通电开机了~");
//
//    }
//}
